fix: use exact match for USER_NAME in /etc/passwd check#119
Open
brendandebeasi wants to merge 1 commit intolinuxserver:masterfrom
Open
fix: use exact match for USER_NAME in /etc/passwd check#119brendandebeasi wants to merge 1 commit intolinuxserver:masterfrom
brendandebeasi wants to merge 1 commit intolinuxserver:masterfrom
Conversation
The grep pattern `^${USER_NAME}` incorrectly matches usernames that
are prefixes of existing users. For example, USER_NAME=b matches the
'bin' user, causing the container to halt with a false positive.
Adding a colon after USER_NAME ensures exact username matching:
`^${USER_NAME}:` only matches the exact username field.
closes linuxserver#118
There was a problem hiding this comment.
Thanks for opening this pull request! Be sure to follow the pull request template!
Contributor
|
I am a bot, here are the test results for this PR:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
Fix grep pattern in init-adduser script to use exact username matching by adding a colon delimiter.
Change:
grep -q "^${USER_NAME}"→grep -q "^${USER_NAME}:"Benefits of this PR and context:
The current check incorrectly matches usernames that are prefixes of existing system users. For example,
USER_NAME=bmatches thebinuser becausegrep "^b"matchesbin:x:1:1:....This causes containers to halt with a false positive error:
The
/etc/passwdformat isusername:password:uid:gid:..., so matching^username:ensures exact username field matching.closes #118
How Has This Been Tested?
Verified the regex logic:
echo "bin:x:1:1:bin" | grep -q "^b"→ matches (current behavior, incorrect)echo "bin:x:1:1:bin" | grep -q "^b:"→ no match (fixed behavior, correct)echo "bin:x:1:1:bin" | grep -q "^bin:"→ matches (correct, exact match)Source / References:
root/etc/s6-overlay/s6-rc.d/init-adduser/run